iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
0
AI & Data

Tensorflow2.0系列 第 16

Underfitted&Overfitted

  • 分享至 

  • xImage
  •  

今天我們要討論的是overfit和underfit。可以透過下表看的出來overfit的話,是模型學到太好太fit training data。在看training data的結果時,您可能會誤判認為他train的很好。其原因為generation不好。當testing data預測的時候,會使的預測結果非常差。面對Underfit的問題時,主要就是Model針對training data就學不起來,導致不管在training set或者testing set都得到不佳的效果。而最好的結果就是圖中間的Good Fit,針對Training set或者Testing set都有很好的結果。但這兩種問題都與模型容量和訓練資料的多寡有關。
https://ithelp.ithome.com.tw/upload/images/20200926/201302467ldxc35vVr.png

甚麼是模型容量

在機器學習的領域中,會說容量 是模型擬合數的能力。通常,越是複雜的模型其容量越高,但是容易造成Overfit。反之,越是簡單的模型其容量越低,卻容易導致underfit。
假設是個線性回歸的模型他的函數是y=wx+b,如果他的資料分布為非線性分布,則線性回歸的模型就比較難fit這次資料的規律,因此這模型的容量較低,相較如果今天是個9次方的模型他就比較有能力可以fit非線性資料分布,顧他的容量就比較大。

解決overfit和underfit

  1. 資料
    當我們面對overfit時可以嘗試增加資料,將不必要的特徵去除降低維度。相反的如果面對underfit可以嘗試多增加一些新的特徵。
  2. 模型
    就像剛剛介紹的容量如果是underfit就改成複雜的模型,針對Overfit,可以用較簡易的模型。此外還有一些參數來做調整。

Regularization (L1 / L2)

為了降低模型複雜度,Regularization會在loss function上加入懲罰項(Penalty),來限制模型中的權重,降低權重或者變為0。

  1. L1:
    L1 Norm主要是在loss function後面加入絕對值權重,可以比較容易造成稀疏也容易觸碰到頂點。
  2. L2:
    L2 Norm主要是在loss function後面加入平方和權重,其實L2 Norm比較不容易造成稀疏解 。L2主要就是讓不重要的權重盡量變小。

Dropout

Dropout的意思是捨棄模型參數,捨棄的比例可以自行決定,簡單來說就是在每次訓練都使用不同的神經元學習,可以有效避免神經網路過於依賴局部特徵,造成網路的稀疏性。


上一篇
房價預測模型(二)
下一篇
Tensorboard
系列文
Tensorflow2.030
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言